#include <stdio.h>
#include <string.h>

// 判断IP地址是否在给定网络中
int is_in_net(unsigned char *ip, unsigned char *netip, unsigned char *mask) 
{
    unsigned int ip_num = 0, netip_num = 0, mask_num = 0;
    int i;

    // 将IP地址转换为无符号整数
    for (i = 0; i < 4; i++) 
    {
        ip_num <<= 8;
        ip_num += ip[i];
    }

    // 将网络地址转换为无符号整数
    for (i = 0; i < 4; i++) 
    {
        netip_num <<= 8;
        netip_num += netip[i];
    }

    // 将掩码转换为无符号整数
    for (i = 0; i < 4; i++) 
    {
        mask_num <<= 8;
        mask_num += mask[i];
    }

    // 判断IP地址与网络地址是否匹配
    if ((ip_num & mask_num) == (netip_num & mask_num)) 
    {
        return 1;
    } 
    else 
    {
        return 0;
    }
}